// 文件操作函数声明
#ifndef __file_H__
#define __file_H__
#include "list.h"
#include "Element_data.h"
#include "login.h"
#include "func.h"
#define file_path "users.txt"               //宏定义文件路径
#define Line_Num count_line_data(file_path)//宏定义文件行数

// 打开文件
/*
@path   文件路径
@mode   文件打开模式
*/
FILE *file_open(const char *path, const char *mode);

// 关闭文件 要创二级指针才能修改
int file_close(FILE **fp);

// 将结构体中的数组追加写入到本地文件中
/*
@ L：   顺序表指针
@ file：文件路径
@ mode：文件打开模式
@ num:  需要写入的学生个数
*/
void save_users(sq_list *L, const char *file, const char *mode, int num);


// 从文件中读取数据
/*
    @L     顺序表指针
    @file  文件名/文件路径
*/
sq_list *use_users(sq_list *L, const char *file);


// 统计文件中的行数,(以及每行有效字符个数)
int count_line_data(const char *path);

#endif